#pragma GCC optimize(2)
#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N=1e5+10,M=2*N;
int e[M],ne[M],h[N],w[M],idx;
int du[N];
double f[N];
int st[N];
void add(int a,int b,int c)
{
	e[idx]=b;
	w[idx]=c;
	ne[idx]=h[a];
	h[a]=idx++;
}
void dfs(int u)
{
	st[u]=1;
	for(int i=h[u];~i;i=ne[i])
	{
		int j=e[i];
		if(!st[j]) dfs(j);
		f[u]=f[u]+(f[j]+w[i])/du[u];
    }
}
int main()
{
	memset(h,-1,sizeof(h));
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int a,b,c;
		cin>>a>>b>>c;
		add(a,b,c);
		du[a]++;
	}
	
	dfs(1);
	
	printf("%.2lf",f[1]);

	return 0;
}

